﻿using System;
using Teigha.Core;

namespace Teigha.TD
{
	public class OdDbUnitsFormatter_Internal : OdDbUnitsFormatter
	{
		public OdDbUnitsFormatter_Internal(IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
		{
		}

		public override double toUserAngle(double wcsAngle)
		{
			return TD_DbPINVOKE.OdDbUnitsFormatter_toUserAngle(OdDbUnitsFormatter.getCPtr(this), wcsAngle);
		}

		public override double fromUserAngle(double ucsAngle)
		{
			return TD_DbPINVOKE.OdDbUnitsFormatter_fromUserAngle(OdDbUnitsFormatter.getCPtr(this), ucsAngle);
		}

		public override string formatPoint(OdGePoint3d value)
		{
			return TD_DbPINVOKE.OdDbUnitsFormatter_formatPoint(OdDbUnitsFormatter.getCPtr(this), OdGePoint3d.getCPtr(value));
		}

		public override OdGePoint3d unformatPoint(string arg0)
		{
			return new OdGePoint3d(TD_DbPINVOKE.OdDbUnitsFormatter_unformatPoint(OdDbUnitsFormatter.getCPtr(this), arg0), false);
		}

		public override OdGePoint3d toUCS(OdGePoint3d wcsPt)
		{
			return new OdGePoint3d(TD_DbPINVOKE.OdDbUnitsFormatter_toUCS(OdDbUnitsFormatter.getCPtr(this), OdGePoint3d.getCPtr(wcsPt)), false);
		}

		public override OdGePoint3d fromUCS(OdGePoint3d ucsPt)
		{
			return new OdGePoint3d(TD_DbPINVOKE.OdDbUnitsFormatter_fromUCS(OdDbUnitsFormatter.getCPtr(this), OdGePoint3d.getCPtr(ucsPt)), false);
		}
	}
}
